package com.omar.labs.tamtamy.JSON;

import java.net.URLEncoder;
import java.util.ArrayList;

public class JSONUtility {

	public static String getNodeValue(String json, String propName){
		String tmp = null;
		int match = json.indexOf(propName+":");
		if(match!=-1){
		int start = match + (propName+":").length();
		int stop = json.indexOf(",", start);		
		try{
			if(stop>0 && stop-start>1 && json.charAt(start)=='"')			  
				tmp = json.substring(start+1, stop-1);
			else if(stop>0)
				tmp = json.substring(start, stop);  
			else
				tmp = json.substring(start+1);  
		}catch (Exception ex){

		}		
		if(tmp.indexOf("\"}")!=-1)
			tmp = tmp.substring(0, tmp.length()-2);
		}
		return tmp; 
	}
	
	public static ArrayList getNodesValue(String json){
		
		if(json.startsWith("\""))
			json = json.substring(1);
		if(json.endsWith("\"")) 
			json = json.substring(0, json.length()-1); 
		
		if(json.startsWith("["))
			json = json.substring(1);
		if(json.endsWith("]")) 
			json = json.substring(0, json.length()-1); 
			
		String[] tmp = json.split(",");
		ArrayList<String> tmpArr = new ArrayList<String>();
		for(int t=0; t<tmp.length; t++){
			String element = tmp[t];
			if(element.startsWith("\""))
		      element = element.substring(1);
			if(element.endsWith("\"")) 
			  element = element.substring(0, element.length()-1);  			
			tmpArr.add(element);
		}
				
		return tmpArr;
	}
	
	/*
	public static String getNodeValueWithList(String json, String propName){		
		String tmp = null;		
		int start = json.indexOf(propName+":") + (propName+":").length();
		int stop = json.indexOf("]", start);		
		try{
		  if(stop>0)
		    tmp = json.substring(start, stop);
		  else
			tmp = json.substring(start);  
		}catch (Exception ex){
		  	
		}		
		if(tmp.indexOf("\"")!=-1)
			tmp = tmp.substring(1, tmp.length()-1);		
		return tmp; 
	}
	*/
	
	public static ArrayList<String> getNodeValueWithList(String json, String propName){		
		ArrayList<String> tmpA = new ArrayList<String>();
		String tmp = null;		
		int start = json.indexOf(propName+":") + (propName+":").length();
		int stop = json.indexOf("]", start);
		int stop1 = json.lastIndexOf("]");
		try{
		  if (stop>0 && stop == stop1){
			tmp = json.substring(start+1, stop);
		  }else if(stop1>0){
			tmp = json.substring(start+1, stop1);   
		  }else{	
			tmp = json.substring(start, json.length()-1);
		  }	
		}catch (Exception ex){
		  	ex.printStackTrace();
		}		
		//if(tmp.indexOf("\"")!=-1)
		//	tmp = tmp.substring(1, tmp.length());
		
		String[] items = null;
		if(tmp.indexOf("},{")==-1 && !propName.equals("\"list\""))
			items = tmp.split(",");
		else
			items = tmp.split("\\},\\{");
		for(int i=0; i<items.length; i++){
			tmpA.add(items[i]);
		}				
		return tmpA; 
	}	
}
